home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2005 June (DVD) / DPPRO0605DVD.iso / Install / program files / Borland / BDS / 3.0 / Demos / Delphi.Net / CLR / Eventlog / frmMain.pas next >
Encoding:
Pascal/Delphi Source File  |  2004-10-22  |  10.3 KB  |  294 lines

  1. unit frmMain;
  2.  
  3. //------------------------------------------------------------------------------
  4. //     EventViewer Management Sample
  5. //     This sample is originally inspired from a MSDN Sample with some additional
  6. //     features.
  7. //
  8. //     This code is released to the Delphi .NET community
  9. //     I accept no liabilities for damage, use at your own risk.
  10. //
  11. //     Written by: Dave Bhatia, Tara Group, Inc. dbhatia@taragroup.com
  12. //------------------------------------------------------------------------------
  13.  
  14.  
  15. interface
  16.  
  17. uses
  18.   System.Drawing, System.Collections, System.ComponentModel,
  19.   System.Windows.Forms, System.Data, System.Diagnostics;
  20.  
  21. type
  22.   TWinForm = class(System.Windows.Forms.Form)
  23.   {$REGION 'Designer Managed Code'}
  24.   strict private
  25.     /// <summary>
  26.     /// Required designer variable.
  27.     /// </summary>
  28.     Components: System.ComponentModel.Container;
  29.     CreateLog: System.Windows.Forms.Button;
  30.     WriteEntry: System.Windows.Forms.Button;
  31.     VerifyLog: System.Windows.Forms.Button;
  32.     RemoveSource: System.Windows.Forms.Button;
  33.     ReadEntry: System.Windows.Forms.Button;
  34.     VerifySource: System.Windows.Forms.Button;
  35.     ClearLog: System.Windows.Forms.Button;
  36.     DeleteLog: System.Windows.Forms.Button;
  37.     EventLog1: System.Diagnostics.EventLog;
  38.     LinkLabel1: System.Windows.Forms.LinkLabel;
  39.     Label1: System.Windows.Forms.Label;
  40.     /// <summary>
  41.     /// Required method for Designer support - do not modify
  42.     /// the contents of this method with the code editor.
  43.     /// </summary>
  44.     procedure InitializeComponent;
  45.     procedure CreateLog_Click(sender: System.Object; e: System.EventArgs);
  46.     procedure ClearLog_Click(sender: System.Object; e: System.EventArgs);
  47.     procedure VerifyLog_Click(sender: System.Object; e: System.EventArgs);
  48.     procedure WriteEntry_Click(sender: System.Object; e: System.EventArgs);
  49.     procedure DeleteLog_Click(sender: System.Object; e: System.EventArgs);
  50.     procedure VerifySource_Click(sender: System.Object; e: System.EventArgs);
  51.     procedure RemoveSource_Click(sender: System.Object; e: System.EventArgs);
  52.     procedure ReadEntry_Click(sender: System.Object; e: System.EventArgs);
  53.     procedure LinkLabel1_LinkClicked(sender: System.Object; e: System.Windows.Forms.LinkLabelLinkClickedEventArgs);
  54.   {$ENDREGION}
  55.   strict protected
  56.     /// <summary>
  57.     /// Clean up any resources being used.
  58.     /// </summary>
  59.     procedure Dispose(Disposing: Boolean); override;
  60.   public
  61.     constructor Create;
  62.   end;
  63.  
  64. implementation
  65.  
  66. {$R 'frmMain.TWinForm.resources'}
  67.  
  68. {$REGION 'Windows Form Designer generated code'}
  69. /// <summary>
  70. /// Required method for Designer support - do not modify
  71. /// the contents of this method with the code editor.
  72. /// </summary>
  73. procedure TWinForm.InitializeComponent;
  74. begin
  75.   Self.CreateLog := System.Windows.Forms.Button.Create;
  76.   Self.WriteEntry := System.Windows.Forms.Button.Create;
  77.   Self.VerifyLog := System.Windows.Forms.Button.Create;
  78.   Self.RemoveSource := System.Windows.Forms.Button.Create;
  79.   Self.ReadEntry := System.Windows.Forms.Button.Create;
  80.   Self.VerifySource := System.Windows.Forms.Button.Create;
  81.   Self.ClearLog := System.Windows.Forms.Button.Create;
  82.   Self.DeleteLog := System.Windows.Forms.Button.Create;
  83.   Self.EventLog1 := System.Diagnostics.EventLog.Create;
  84.   Self.LinkLabel1 := System.Windows.Forms.LinkLabel.Create;
  85.   Self.Label1 := System.Windows.Forms.Label.Create;
  86.   (System.ComponentModel.ISupportInitialize(Self.EventLog1)).BeginInit;
  87.   Self.SuspendLayout;
  88.   // 
  89.   // CreateLog
  90.   // 
  91.   Self.CreateLog.Location := System.Drawing.Point.Create(32, 32);
  92.   Self.CreateLog.Name := 'CreateLog';
  93.   Self.CreateLog.Size := System.Drawing.Size.Create(232, 23);
  94.   Self.CreateLog.TabIndex := 0;
  95.   Self.CreateLog.Text := 'Create Custom Log';
  96.   Include(Self.CreateLog.Click, Self.CreateLog_Click);
  97.   // 
  98.   // WriteEntry
  99.   // 
  100.   Self.WriteEntry.Location := System.Drawing.Point.Create(32, 64);
  101.   Self.WriteEntry.Name := 'WriteEntry';
  102.   Self.WriteEntry.Size := System.Drawing.Size.Create(232, 23);
  103.   Self.WriteEntry.TabIndex := 1;
  104.   Self.WriteEntry.Text := 'Write Entry';
  105.   Include(Self.WriteEntry.Click, Self.WriteEntry_Click);
  106.   // 
  107.   // VerifyLog
  108.   // 
  109.   Self.VerifyLog.Location := System.Drawing.Point.Create(32, 96);
  110.   Self.VerifyLog.Name := 'VerifyLog';
  111.   Self.VerifyLog.Size := System.Drawing.Size.Create(232, 23);
  112.   Self.VerifyLog.TabIndex := 2;
  113.   Self.VerifyLog.Text := 'Verify Log Exists';
  114.   Include(Self.VerifyLog.Click, Self.VerifyLog_Click);
  115.   // 
  116.   // RemoveSource
  117.   // 
  118.   Self.RemoveSource.Location := System.Drawing.Point.Create(32, 128);
  119.   Self.RemoveSource.Name := 'RemoveSource';
  120.   Self.RemoveSource.Size := System.Drawing.Size.Create(232, 23);
  121.   Self.RemoveSource.TabIndex := 3;
  122.   Self.RemoveSource.Text := 'Remove Event Source';
  123.   Include(Self.RemoveSource.Click, Self.RemoveSource_Click);
  124.   // 
  125.   // ReadEntry
  126.   // 
  127.   Self.ReadEntry.Location := System.Drawing.Point.Create(288, 128);
  128.   Self.ReadEntry.Name := 'ReadEntry';
  129.   Self.ReadEntry.Size := System.Drawing.Size.Create(232, 23);
  130.   Self.ReadEntry.TabIndex := 7;
  131.   Self.ReadEntry.Text := 'Read Entry';
  132.   Include(Self.ReadEntry.Click, Self.ReadEntry_Click);
  133.   // 
  134.   // VerifySource
  135.   // 
  136.   Self.VerifySource.Location := System.Drawing.Point.Create(288, 96);
  137.   Self.VerifySource.Name := 'VerifySource';
  138.   Self.VerifySource.Size := System.Drawing.Size.Create(232, 23);
  139.   Self.VerifySource.TabIndex := 6;
  140.   Self.VerifySource.Text := 'Verify Source Exists';
  141.   Include(Self.VerifySource.Click, Self.VerifySource_Click);
  142.   // 
  143.   // ClearLog
  144.   // 
  145.   Self.ClearLog.Location := System.Drawing.Point.Create(288, 64);
  146.   Self.ClearLog.Name := 'ClearLog';
  147.   Self.ClearLog.Size := System.Drawing.Size.Create(232, 23);
  148.   Self.ClearLog.TabIndex := 5;
  149.   Self.ClearLog.Text := 'Clear Log';
  150.   Include(Self.ClearLog.Click, Self.ClearLog_Click);
  151.   // 
  152.   // DeleteLog
  153.   // 
  154.   Self.DeleteLog.Location := System.Drawing.Point.Create(288, 32);
  155.   Self.DeleteLog.Name := 'DeleteLog';
  156.   Self.DeleteLog.Size := System.Drawing.Size.Create(232, 23);
  157.   Self.DeleteLog.TabIndex := 4;
  158.   Self.DeleteLog.Text := 'Delete Log';
  159.   Include(Self.DeleteLog.Click, Self.DeleteLog_Click);
  160.   // 
  161.   // EventLog1
  162.   // 
  163.   Self.EventLog1.SynchronizingObject := Self;
  164.   // 
  165.   // LinkLabel1
  166.   // 
  167.   Self.LinkLabel1.Location := System.Drawing.Point.Create(32, 176);
  168.   Self.LinkLabel1.Name := 'LinkLabel1';
  169.   Self.LinkLabel1.Size := System.Drawing.Size.Create(176, 23);
  170.   Self.LinkLabel1.TabIndex := 9;
  171.   Self.LinkLabel1.TabStop := True;
  172.   Self.LinkLabel1.Text := 'Open Event Viewer to view Logs';
  173.   Include(Self.LinkLabel1.LinkClicked, Self.LinkLabel1_LinkClicked);
  174.   // 
  175.   // Label1
  176.   // 
  177.   Self.Label1.Location := System.Drawing.Point.Create(216, 176);
  178.   Self.Label1.Name := 'Label1';
  179.   Self.Label1.Size := System.Drawing.Size.Create(304, 16);
  180.   Self.Label1.TabIndex := 10;
  181.   Self.Label1.Text := 'Please re-open Event Viewer if your entry is not visible';
  182.   // 
  183.   // TWinForm
  184.   // 
  185.   Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13);
  186.   Self.ClientSize := System.Drawing.Size.Create(552, 214);
  187.   Self.Controls.Add(Self.Label1);
  188.   Self.Controls.Add(Self.LinkLabel1);
  189.   Self.Controls.Add(Self.ReadEntry);
  190.   Self.Controls.Add(Self.VerifySource);
  191.   Self.Controls.Add(Self.ClearLog);
  192.   Self.Controls.Add(Self.DeleteLog);
  193.   Self.Controls.Add(Self.RemoveSource);
  194.   Self.Controls.Add(Self.VerifyLog);
  195.   Self.Controls.Add(Self.WriteEntry);
  196.   Self.Controls.Add(Self.CreateLog);
  197.   Self.Name := 'TWinForm';
  198.   Self.Text := 'Event Viewer Log Management Sample';
  199.   (System.ComponentModel.ISupportInitialize(Self.EventLog1)).EndInit;
  200.   Self.ResumeLayout(False);
  201. end;
  202. {$ENDREGION}
  203.  
  204. procedure TWinForm.Dispose(Disposing: Boolean);
  205. begin
  206.   if Disposing then
  207.   begin
  208.     if Components <> nil then
  209.       Components.Dispose();
  210.   end;
  211.   inherited Dispose(Disposing);
  212. end;
  213.  
  214. constructor TWinForm.Create;
  215. begin
  216.   inherited Create;
  217.   //
  218.   // Required for Windows Form Designer support
  219.   //
  220.   InitializeComponent;
  221.   //
  222.   // TODO: Add any constructor code after InitializeComponent call
  223.   //
  224. end;
  225.  
  226. procedure TWinForm.LinkLabel1_LinkClicked(sender: System.Object; e: System.Windows.Forms.LinkLabelLinkClickedEventArgs);
  227. begin
  228.   System.Diagnostics.Process.Start('eventvwr.msc');
  229. end;
  230.  
  231.  
  232. procedure TWinForm.ReadEntry_Click(sender: System.Object; e: System.EventArgs);
  233. var
  234.  i:integer;
  235. begin
  236.   if (Self.eventLog1.Entries.Count > 0) then
  237.     begin
  238.       for i:=0 to EventLog1.Entries.Count-1 do
  239.          MessageBox.Show( EventLog1.Entries.Item[i].Message );
  240.     end
  241.   else
  242.     MessageBox.Show('There are no entries in the log.');
  243. end;
  244.  
  245. procedure TWinForm.RemoveSource_Click(sender: System.Object; e: System.EventArgs);
  246. begin
  247.   if System.Diagnostics.EventLog.SourceExists('Source1') then
  248.     System.Diagnostics.EventLog.DeleteEventSource('Source1');
  249. end;
  250.  
  251. procedure TWinForm.VerifySource_Click(sender: System.Object; e: System.EventArgs);
  252. var
  253.   sourceExists: Boolean;
  254. begin
  255.   sourceExists := System.Diagnostics.EventLog.SourceExists('Source1');
  256.   MessageBox.Show(('Does the source exist? ' + sourceExists.ToString));
  257. end;
  258.  
  259. procedure TWinForm.DeleteLog_Click(sender: System.Object; e: System.EventArgs);
  260. begin
  261.    if System.Diagnostics.EventLog.Exists('NewLog1') then
  262.     System.Diagnostics.EventLog.Delete('NewLog1'); 
  263. end;
  264.  
  265. procedure TWinForm.WriteEntry_Click(sender: System.Object; e: System.EventArgs);
  266. begin
  267.   Self.eventLog1.WriteEntry('This is an informational message');
  268.   Self.eventLog1.WriteEntry('This is an error message', System.Diagnostics.EventLogEntryType.Error);
  269. end;
  270.  
  271. procedure TWinForm.VerifyLog_Click(sender: System.Object; e: System.EventArgs);
  272. var
  273.   logExists: Boolean;
  274. begin
  275.   logExists := System.Diagnostics.EventLog.Exists('NewLog1');
  276.   MessageBox.Show(('Does the log exist? ' + logExists.ToString));
  277. end;
  278.  
  279. procedure TWinForm.ClearLog_Click(sender: System.Object; e: System.EventArgs);
  280. begin
  281.     Self.eventLog1.Clear;
  282. end;
  283.  
  284. procedure TWinForm.CreateLog_Click(sender: System.Object; e: System.EventArgs);
  285. begin
  286.   if System.Diagnostics.EventLog.SourceExists('Source1') then
  287.     System.Diagnostics.EventLog.DeleteEventSource('Source1');
  288.   System.Diagnostics.EventLog.CreateEventSource('Source1', 'NewLog1');
  289.   Self.eventLog1.Log := 'NewLog1';
  290.   Self.eventLog1.Source := 'Source1';
  291. end;
  292.  
  293. end.
  294.